package com.kins.so.chatassistant.service;

import com.github.pagehelper.PageInfo;
import com.kins.so.chatassistant.entity.ChatAssistant;
import com.kins.so.chatassistant.entity.ChatSessions;
import com.kins.so.chatassistant.model.RetrievalChunksVo;
import com.kins.so.chatassistant.model.RetrievalVo;
import com.kins.so.knowledgebase.model.CategoryTreeVo;
import com.kins.so.test.enetity.ResponseVO;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.MultipartHttpServletRequest;
import reactor.core.publisher.Flux;

import java.util.List;

/**
 * @Description:
 * @Author: 申科
 * @Date:2025/11/13 17:00
 */
public interface IChatAssistantService {
    List<CategoryTreeVo> getChatAssistantTree();

    void saveOrUpdata(ChatAssistant param);

    void deleteChatAssistant(ChatAssistant param);

    ChatSessions saveOrUpdataSessions(ChatSessions param);

    List<Object> getChatSessionList(String chatId);

    void deleteChatSessions(ChatSessions param);

    Flux<String> streamChatEnhanced(ChatSessions chatSessions);

    List<ChatAssistant> findListByPermissions(ChatAssistant chatAssistant);

    PageInfo<RetrievalChunksVo> retrieval(RetrievalVo retrievalVo);

    ChatAssistant saveLibrary(ChatAssistant chatAssistant);

    ResponseVO uploadAndParse(ChatSessions chatSessions, MultipartFile file, HttpServvletRequest hsr);

    ResponseVO updataChatAssistantLib(ChatAssistant chatAssistant);

    void exportChatFile(ChatRecordVo chatRecordVo, HttpServletResopnse hsq, MultipartHttpServletRequest req);

    List<Object> relatedQuestions(ChatSessions chatSessions);

}
